package PersistenciaDAOs;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import SQLQrys.QrysJugador;
import exceptions.PersistenciaException;
import logica.ConexionBD;
import logica.Jugador;

public class DAOJugadores {
	
	private ConexionBD DBC;
	
	public DAOJugadores(){
		
	}
	public void insert(Jugador Jug) throws PersistenciaException{
		String ins=null;
		try {
			QrysJugador con = new QrysJugador();
			ins=con.insertJugador();
			PreparedStatement pstmt1;
			DBC=new ConexionBD();
			pstmt1 = DBC.getConnection().prepareStatement(ins);

			pstmt1.setInt(1, Jug.getId());
			pstmt1.setString(2, Jug.getNombre());
			pstmt1.setString(3, Jug.getPass());

			pstmt1.executeUpdate();
			//cierro preparedStatement.
			pstmt1.close();
			
		} catch (SQLException e) {
			e.printStackTrace();
			throw new PersistenciaException("Se ha producido un error al intentar guardar el Jugador");
		}finally{
			DBC.desconectar();
		}	
	}
	
	public Jugador select(int idPart){
		String sel=null;
		
		Jugador Jug = new Jugador();
		
		try{
			QrysJugador cons=new QrysJugador();
			
			sel = cons.selectJugador();
			//creo preparedStatement, seteo parametros y ejecuto la consulta.
			PreparedStatement pstmt1;

			DBC=new ConexionBD();

			pstmt1 = DBC.getConnection().prepareStatement(sel);
			pstmt1.setInt(1, idPart);
			
			ResultSet rs = pstmt1.executeQuery();
			while(rs.next()){
				Jug.setid(rs.getInt("id"));
				Jug.setNombre(rs.getString("nombre"));
				Jug.setPass(rs.getString("pass"));
			}	
			
			rs.close();
			pstmt1.close();
	}
		catch (SQLException e) {
			e.printStackTrace();
			throw new PersistenciaException("Se ha producido un error al intentar levantar el Jugador");
			}finally{
				DBC.desconectar();
				return Jug;
				}	
			}
}

	

